#import <Foundation/Foundation.h>
#define m1_MINUTE	60
#define m1_HOUR		3600
#define m1_DAY		86400
#define m1_WEEK		604800
#define m1_YEAR		31556926
@interface NSDate (Category)
- (NSString *)timeIntervalDescription;
- (NSString *)minuteDescription;
- (NSString *)formattedTime;
- (NSString *)formattedDateDescription;
- (double)timeIntervalSince1970InMilliSecond;
+ (NSDate *)dateWithTimeIntervalInMilliSecondSince1970:(double)timeIntervalInMilliSecond;
+ (NSString *)formattedTimeFromTimeInterval:(long long)time;
+ (NSDate *) m1_dateTomorrow;
+ (NSDate *) m1_dateYesterday;
+ (NSDate *) m1_dateWithDaysFromNow: (NSInteger) days;
+ (NSDate *) m1_dateWithDaysBeforeNow: (NSInteger) days;
+ (NSDate *) m1_dateWithHoursFromNow: (NSInteger) dHours;
+ (NSDate *) m1_dateWithHoursBeforeNow: (NSInteger) dHours;
+ (NSDate *) m1_dateWithMinutesFromNow: (NSInteger) dMinutes;
+ (NSDate *) m1_dateWithMinutesBeforeNow: (NSInteger) dMinutes;
- (BOOL) isEqualToDateIgnoringTime: (NSDate *) aDate;
- (BOOL) isToday;
- (BOOL) m1_isTomorrow;
- (BOOL) m1_isYesterday;
- (BOOL) isSameWeekAsDate: (NSDate *) aDate;
- (BOOL) isThisWeek;
- (BOOL) m1_isNextWeek;
- (BOOL) m1_isLastWeek;
- (BOOL) isSameMonthAsDate: (NSDate *) aDate;
- (BOOL) m1_isThisMonth;
- (BOOL) m1_isSameYearAsDate: (NSDate *) aDate;
- (BOOL) m1_isThisYear;
- (BOOL) isNextYear;
- (BOOL) m1_isLastYear;
- (BOOL) m1_isEarlierThanDate: (NSDate *) aDate;
- (BOOL) m1_isLaterThanDate: (NSDate *) aDate;
- (BOOL) m1_isInFuture;
- (BOOL) m1_isInPast;
- (BOOL) m1_isTypicallyWorkday;
- (BOOL) m1_isTypicallyWeekend;
- (NSDate *) m1_dateByAddingDays: (NSInteger) dDays;
- (NSDate *) m1_dateBySubtractingDays: (NSInteger) dDays;
- (NSDate *) m1_dateByAddingHours: (NSInteger) dHours;
- (NSDate *) m1_dateBySubtractingHours: (NSInteger) dHours;
- (NSDate *) m1_dateByAddingMinutes: (NSInteger) dMinutes;
- (NSDate *) m1_dateBySubtractingMinutes: (NSInteger) dMinutes;
- (NSDate *) m1_dateAtStartOfDay;
- (NSInteger) m1_minutesAfterDate: (NSDate *) aDate;
- (NSInteger) m1_minutesBeforeDate: (NSDate *) aDate;
- (NSInteger) m1_hoursAfterDate: (NSDate *) aDate;
- (NSInteger) m1_hoursBeforeDate: (NSDate *) aDate;
- (NSInteger) m1_daysAfterDate: (NSDate *) aDate;
- (NSInteger) m1_daysBeforeDate: (NSDate *) aDate;
- (NSInteger)m1_distanceInDaysToDate:(NSDate *)anotherDate;
@property (readonly) NSInteger m1_nearestHour;
@property (readonly) NSInteger hour;
@property (readonly) NSInteger m1_minute;
@property (readonly) NSInteger m1_seconds;
@property (readonly) NSInteger day;
@property (readonly) NSInteger m1_month;
@property (readonly) NSInteger week;
@property (readonly) NSInteger m1_weekday;
@property (readonly) NSInteger m1_nthWeekday; 
@property (readonly) NSInteger year;
@end
